home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / dev / lang / f2c_bin.lha / f2c-950314 / readme < prev    next >
Text File  |  1995-05-27  |  24KB  |  654 lines

  1. '
  2. ====== old index for f2c, now "readme from f2c" ============
  3.  
  4. FILES:
  5.  
  6. f2c.h    Include file necessary for compiling output of the converter.
  7.     See the second NOTE below.
  8.  
  9. f2c.1    Man page for f2c.
  10.  
  11. f2c.1t    Source for f2c.1 (to be processed by troff -man or nroff -man).
  12.  
  13. libf77    Library of non I/O support routines the generated C may need.
  14.     Fortran main programs result in a C function named MAIN__ that
  15.     is meant to be invoked by the main() in libf77.
  16.  
  17. libi77    Library of Fortran I/O routines the generated C may need.
  18.     Note that some vendors (e.g., BSD, Sun and MIPS) provide a
  19.     libF77 and libI77 that are incompatible with f2c -- they
  20.     provide some differently named routines or routines with the
  21.     names that f2c expects, but with different calling sequences.
  22.     On such systems, the recommended procedure is to merge
  23.     libf77 and libi77 into a single library, say libf2c, and to
  24.         install it where you can access it by specifying -lf2c .  The
  25.         definition of link_msg in sysdep.c assumes this arrangement.
  26.  
  27.     Both libf77 and libi77 are bundles, meant to be unpacked by the
  28.     Bourne (or Korn) shell.  MS-DOS users can use the MKS Toolkit
  29.     to unpack libf77 and libi77.
  30.  
  31. f2c.ps    Postscript for a technical report on f2c.  After you strip the
  32.     mail header, the first line should be "%!PS".
  33.  
  34. fixes    The complete change log, reporting bug fixes and other changes.
  35.     (Some recent change-log entries are given below).
  36.  
  37. fc    A shell script that uses f2c and imitates much of the behavior
  38.     of commonly found f77 commands.  You will almost certainly
  39.     need to adjust some of the shell-variable assignments to make
  40.     this script work on your system.
  41.  
  42.  
  43. SUBDIRECTORY:
  44.  
  45. f2c/src    Source for the converter itself, including a file of checksums
  46.     and source for a program to compute the checksums (to verify
  47.     correct transmission of the source), is available: ask netlib
  48.     (e.g., netlib@research.att.com) to
  49.         send all from f2c/src
  50.     If the checksums show damage to just a few source files, or if
  51.     the change log file (see "fixes" below) reports corrections to
  52.     some source files, you can request those files individually
  53.     "from f2c/src".  For example, to get defs.h and xsum0.out, you
  54.     would ask netlib to
  55.         send defs.h xsum0.out from f2c/src
  56.     "all from f2c/src" is about 640 kilobytes long; for convenience
  57.     (and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t.
  58.  
  59.     Tip: if asked to send over 99,000 bytes in one request, netlib
  60.     breaks the shipment into 1000 line pieces and sends each piece
  61.     separately (since otherwise some mailers might gag).  To avoid
  62.     the hassle of reassembling the pieces, try to keep each request
  63.     under 99,000 bytes long.  The final number in each line of
  64.     xsum0.out gives the length of each file in f2c/src.  For
  65.     example,
  66.         send exec.c expr.c from f2c/src
  67.         send format.c format_data.c from f2c/src
  68.     will give you slightly less hassle than
  69.         send exec.c expr.c format.c format_data.c from f2c/src
  70.     Alternatively, if all the mailers in your return path allow
  71.     long messages, you can supply an appropriate mailsize line in
  72.     your netlib request, e.g.
  73.         mailsize 200k
  74.         send exec.c expr.c format.c format_data.c from f2c/src
  75.  
  76.     If you have trouble generating gram.c, you can ask netlib to
  77.         send gram.c from f2c/src
  78.     Then `xsum gram.c` should report
  79.         gram.c    1814e302    57355
  80.  
  81. NOTE:    For now, you may exercise f2c by sending netlib a message whose
  82.     first line is "execute f2c" and whose remaining lines are
  83.     the Fortran 77 source that you wish to have converted.
  84.     Return mail brings you the resulting C, with f2c's error
  85.     messages between #ifdef uNdEfInEd and #endif at the end.
  86.     (To understand line numbers in the error messages, regard
  87.     the "execute f2c" line as line 0.  It is stripped away by
  88.     the netlib software before f2c sees your Fortran input.)
  89.     Options described in the man page may be transmitted to
  90.     netlib by having the first line of input be a comment
  91.     whose first 6 characters are "c$f2c " and whose remaining
  92.     characters are the desired options, e.g., "c$f2c -R -u".
  93.  
  94.     You may say "execute f2c" in the Subject line instead of (but
  95.     *not* in addition to) in the first line of the message body.
  96.  
  97.     The incoming Fortran is saved, at least for a while.  Don't
  98.     send any secrets!
  99.  
  100.  
  101. BUGS:    Please send bug reports (including the shortest example
  102.     you can find that illustrates the bug) to research!dmg
  103.     or dmg@research.att.com .  You might first check whether
  104.     the bug goes away when you turn optimization off.
  105.  
  106.  
  107. NOTE:    f2c.h defines several types, e.g., real, integer, doublereal.
  108.     The definitions in f2c.h are suitable for most machines, but if
  109.     your machine has sizeof(double) > 2*sizeof(long), you may need
  110.     to adjust f2c.h appropriately.  f2c assumes
  111.         sizeof(doublecomplex) = 2*sizeof(doublereal)
  112.         sizeof(doublereal) = sizeof(complex)
  113.         sizeof(doublereal) = 2*sizeof(real)
  114.         sizeof(real) = sizeof(integer)
  115.         sizeof(real) = sizeof(logical)
  116.         sizeof(real) = 2*sizeof(shortint)
  117.     EQUIVALENCEs may not be translated correctly if these
  118.     assumptions are violated.
  119.  
  120.     On machines, such as those using a DEC Alpha processor, on
  121.     which sizeof(short) == 2, sizeof(int) == sizeof(float) == 4,
  122.     and sizeof(long) == sizeof(double) == 8, it suffices to
  123.     modify f2c.h by removing the first occurrence of "long "
  124.     on each line containing "long ", e.g., by issuing the
  125.     commands
  126.         mv f2c.h f2c.h0
  127.         sed 's/long //' f2c.h0 >f2c.h
  128.     On such machines, one can enable INTEGER*8 by uncommenting
  129.     the typedef of longint in f2c.h, so it reads
  130.         typedef long longint;
  131.     by compiling libI77 with -DAllow_TYQUAD, and by adjusting
  132.     libF77/makefile as described in libF77/README.
  133.  
  134.     Some machines may have sizeof(int) == 4 and
  135.     sizeof(long long) == 8.  On such machines, adjust f2c.h
  136.     by changing "long int " to "long long ", e.g., by saying
  137.         mv f2c.h f2c.h0
  138.         sed 's/long int /long long /' f2c.h0 >f2c.h
  139.     One can enable INTEGER*8 on such machines as described
  140.     above, but with
  141.         typedef long long longint;
  142.  
  143.     There exists a C compiler that objects to the lines
  144.         typedef VOID C_f;    /* complex function */
  145.         typedef VOID H_f;    /* character function */
  146.         typedef VOID Z_f;    /* double complex function */
  147.     in f2c.h .  If yours is such a compiler, do two things:
  148.     1. Complain to your vendor about this compiler bug.
  149.     2. Find the line
  150.         #define VOID void
  151.        in f2c.h and change it to
  152.         #define VOID int
  153.     (For readability, the f2c.h lines shown above have had two
  154.     tabs inserted before their first character.)
  155.  
  156. FTP:    All the material described above is now available by anonymous
  157.     ftp from netlib.att.com (login: anonymous; Password: your E-mail
  158.     address; cd netlib/f2c).  Note that you can say, e.g.,
  159.  
  160.         cd /netlib/f2c/src
  161.         binary
  162.         prompt
  163.         mget *.Z
  164.  
  165.     to get all the .Z files in src.  You must uncompress the .Z
  166.     files once you have a copy of them, e.g., by
  167.  
  168.         uncompress *.Z
  169.  
  170.     Subdirectory msdos contains two PC versions of f2c,
  171.     f2c.exe.Z and f2cx.exe.Z; the latter uses extended memory.
  172.     The README in that directory provides more details.
  173.  
  174.     Changes appear first in the f2c files available by E-mail
  175.     from netlib@research.att.com.  If the deamons work right,
  176.     changed files are available the next day by ftp from
  177.     netlib.att.com.  In due course, they reach other netlib servers.
  178.  
  179. -----------------
  180. Recent change log (partial)
  181. -----------------
  182.  
  183. Tue May 10 07:55:12 EDT 1994
  184.   Trivial changes to exec.c, p1output.c, parse_args.c, proc.c,
  185. and putpcc.c: change arguments from
  186.     type foo[]
  187. to
  188.     type *foo
  189. for consistency with defs.h.  For most compilers, this makes no
  190. difference.
  191.  
  192. Thu Jun  2 12:18:18 EDT 1994
  193.   Fix bug in handling FORMAT statements that have adjacent character
  194. (or Hollerith) strings: an extraneous \002 appeared between the
  195. strings.
  196.   libf77: under -DNO_ONEXIT, arrange for f_exit to be called just
  197. once; previously, upon abnormal termination (including stop statements),
  198. it was called twice.
  199.  
  200. Mon Jun  6 15:52:57 EDT 1994
  201.   libf77: Avoid references to SIGABRT and SIGIOT if neither is defined;
  202. Version.c not changed.
  203.   libi77: Add cast to definition of errfl() in fio.h; this only matters
  204. on systems with sizeof(int) < sizeof(long).  Under -DNON_UNIX_STDIO,
  205. use binary mode for direct formatted files (to avoid any confusion
  206. connected with \n characters).
  207.  
  208. Fri Jun 10 16:47:31 EDT 1994
  209.   Fix bug under -A in handling unreferenced (and undeclared)
  210. external arguments in subroutines with multiple entry points.  Example:
  211.     subroutine m(fcn,futil)
  212.     external fcn,futil
  213.     call fcn
  214.     entry mintio(i1) ! (D_fp)0 rather than (U_fp)0 for futil
  215.     end
  216.  
  217. Wed Jun 15 10:38:14 EDT 1994
  218.   Allow char(constant expression) function in parameter declarations.
  219. (This was probably broken in the changes of 29 March 1994.)
  220.  
  221. Fri Jul  1 23:54:00 EDT 1994
  222.   Minor adjustments to makefile (rule for f2c.1 commented out) and
  223. sysdep.h (#undef KR_headers if __STDC__ is #defined, and base test
  224. for ANSI_Libraries and ANSI_Prototypes on KR_headers rather than
  225. __STDC__); version.c touched but not changed.
  226.   libi77: adjust fp.h so local.h is only needed under -DV10.
  227.  
  228. Tue Jul  5 03:05:46 EDT 1994
  229.   Fix segmentation fault in
  230.     subroutine foo(a,b,k)
  231.     data i/1/
  232.     double precision a(k,1)    ! sequence error: must precede data
  233.     b = a(i,1)
  234.     end
  235.   libi77: Fix bug (introduced 6 June 1994?) in reopening files under
  236. NON_UNIX_STDIO.
  237.   Fix some error messages caused by illegal Fortran.  Examples:
  238. * 1.
  239.     x(i) = 0  !Missing declaration for array x
  240.     call f(x) !Said Impossible storage class 8 in routine mkaddr
  241.     end      !Now says invalid use of statement function x
  242. * 2.
  243.     f = g    !No declaration for g; by default it's a real variable
  244.     call g    !Said invalid class code 2 for function g
  245.     end    !Now says g cannot be called
  246. * 3.
  247.     intrinsic foo    !Invalid intrinsic name
  248.     a = foo(b)    !Said intrcall: bad intrgroup 0
  249.     end        !Now just complains about line 1
  250.  
  251. Tue Jul  5 11:14:26 EDT 1994
  252.   Fix glitch in handling erroneous statement function declarations.
  253. Example:
  254.     a(j(i) - i) = a(j(i) - i) + 1    ! bad statement function
  255.     call foo(a(3))    ! Said Impossible type 0 in routine mktmpn
  256.     end        ! Now warns that i and j are not used
  257.  
  258. Wed Jul  6 17:31:25 EDT 1994
  259.   Tweak test for statement functions that (illegally) call themselves;
  260. f2c will now proceed to check for other errors, rather than bailing
  261. out at the first recursive statement function reference.
  262.   Warn about but retain divisions by 0 (instead of calling them
  263. "compiler errors" and quiting).  On IEEE machines, this permits
  264.     double precision nan, ninf, pinf
  265.     nan = 0.d0/0.d0
  266.     pinf = 1.d0/0.d0
  267.     ninf = -1.d0/0.d0
  268.     write(*,*) 'nan, pinf, ninf = ', nan, pinf, ninf
  269.     end
  270. to print
  271.     nan, pinf, ninf =   NaN  Infinity -Infinity
  272.   libi77: wref.c: protect with #ifdef GOOD_SPRINTF_EXPONENT an
  273. optimization that requires exponents to have 2 digits when 2 digits
  274. suffice.  lwrite.c wsfe.c (list and formatted external output):
  275. omit ' ' carriage-control when compiled with -DOMIT_BLANK_CC .
  276. Off-by-one bug fixed in character count for list output of character
  277. strings.  Omit '.' in list-directed printing of Nan, Infinity.
  278.  
  279. Mon Jul 11 13:05:33 EDT 1994
  280.   src/gram.c updated.
  281.  
  282. Tue Jul 12 10:24:42 EDT 1994
  283.   libi77: wrtfmt.c: under G11.4, write 0. as "  .0000    " rather
  284. than "  .0000E+00".
  285.  
  286. Thu Jul 14 17:55:46 EDT 1994
  287.   Fix glitch in changes of 6 July 1994 that could cause erroneous
  288. "division by zero" warnings (or worse).  Example:
  289.     subroutine foo(a,b)
  290.     y = b
  291.     a = a / y    ! erroneous warning of division by zero
  292.     end
  293.  
  294. Mon Aug  1 16:45:17 EDT 1994
  295.   libi77: lread.c rsne.c: for benefit of systems with a buggy stdio.h,
  296. declare ungetc when neither KR_headers nor ungetc is #defined.
  297.  
  298. Wed Aug  3 01:53:00 EDT 1994
  299.   libi77: lwrite.c (list output): do not insert a newline when
  300. appending an oversize item to an empty line.
  301.  
  302. Mon Aug  8 00:51:01 EDT 1994
  303.   Fix bug (introduced 3 Feb. 1993) that, under -i2, kept LOGICAL*2
  304. variables from appearing in INQUIRE statements.  Under -I2, allow
  305. LOGICAL*4 variables to appear in INQUIRE.  Fix intrinsic function
  306. LEN so it returns a short value under -i2, a long value otherwise.
  307.   exec.c: fix obscure memory fault possible with bizarre (and highly
  308. erroneous) DO-loop syntax.
  309.  
  310. Fri Aug 12 10:45:57 EDT 1994
  311.   libi77: fix glitch that kept ERR= (in list- or format-directed input)
  312. from working after a NAMELIST READ.
  313.  
  314. Thu Aug 25 13:58:26 EDT 1994
  315.   Suppress -s when -C is specified.
  316.  
  317. Wed Sep  7 22:13:20 EDT 1994
  318.   libi77: typesize.c: adjust to allow types LOGICAL*1, LOGICAL*2,
  319. INTEGER*1, and (under -DAllow_TYQUAD) INTEGER*8 in NAMELISTs.
  320.  
  321. Fri Sep 16 17:50:18 EDT 1994
  322.   Change name adjustment for reserved words: instead of just appending
  323. "_" (a single underscore), append "_a_" to local variable names to avoid
  324. trouble when a common block is named a reserved word and the same
  325. reserved word is also a local variable name.  Example:
  326.     common /const/ a,b,c
  327.     real const(3)
  328.     equivalence (const(1),a)
  329.     a = 1.234
  330.     end
  331.   Arrange for ichar() to treat characters as unsigned.
  332.   libf77: s_cmp.c: treat characters as unsigned in comparisons.
  333. These changes for unsignedness only matter for strings that contain
  334. non-ASCII characters.  Now ichar() should always be >= 0.
  335.  
  336. Sat Sep 17 11:19:32 EDT 1994
  337.   fc: set rc=$? before exit (to get exit code right in trap code).
  338.  
  339. Mon Sep 19 17:49:43 EDT 1994
  340.   libf77: s_paus.c: flush stderr after PAUSE; add #ifdef MSDOS stuff.
  341.   libi77: README: point out general need for -DMSDOS under MS-DOS.
  342.  
  343. Tue Sep 20 11:42:30 EDT 1994
  344.   Fix bug in comparing identically named common blocks, in which
  345. all components have the same names and types, but at least one is
  346. dimensioned (1) and the other is not dimensioned.  Example:
  347.     subroutine foo
  348.     common /ab/ a
  349.     a=1.    !!! translated correctly to ab_1.a = (float)1.;
  350.     end
  351.     subroutine goo
  352.     common /ab/ a(1)
  353.     a(1)=2.    !!! translated erroneously to ab_1.a[0] = (float)2. 
  354.     end
  355.  
  356. Tue Sep 27 23:47:34 EDT 1994
  357.   Fix bug introduced 16 Sept. 1994: don't add _a_ to C keywords
  358. used as external names.  In fact, return to earlier behavior of
  359. appending __ to C keywords unless they are used as external names,
  360. in which case they get just one underscore appended.
  361.   Adjust constant handling so integer and logical PARAMETERs retain
  362. type information, particularly under -I2.  Example:
  363.     SUBROUTINE FOO
  364.     INTEGER I
  365.     INTEGER*1 I1
  366.     INTEGER*2 I2
  367.     INTEGER*4 I4
  368.     LOGICAL L
  369.     LOGICAL*1 L1
  370.     LOGICAL*2 L2
  371.     LOGICAL*4 L4
  372.     PARAMETER (L=.FALSE., L1=.FALSE., L2=.FALSE., L4=.FALSE.)
  373.     PARAMETER (I=0,I1=0,I2=0,I4=0)
  374.     CALL DUMMY(I, I1, I2, I4, L, L1, L2, L4)
  375.     END
  376.   f2c.1t: Change f\^2c to f2c (omit half-narrow space) in line following
  377. ".SH NAME" for benefit of systems that cannot cope with troff commands
  378. in this context.
  379.  
  380. Wed Sep 28 12:45:19 EDT 1994
  381.   libf77: s_cmp.c fix glitch in -DKR_headers version introduced
  382. 12 days ago.
  383.  
  384. Thu Oct  6 09:46:53 EDT 1994
  385.   libi77: util.c: omit f__mvgbt (which is never used).
  386.   f2c.h: change "long" to "long int" to facilitate the adjustments
  387. by means of sed described above.  Comment out unused typedef of Long.
  388.  
  389. Fri Oct 21 18:02:24 EDT 1994
  390.   libf77: add s_catow.c and adjust README to point out that changing
  391. "s_cat.o" to "s_catow.o" in the makefile will permit the target of a
  392. concatenation to appear on its right-hand side (contrary to the
  393. Fortran 77 Standard and at the cost of some run-time efficiency).
  394.  
  395. Wed Nov  2 00:03:58 EST 1994
  396.   Adjust -g output to contain only one #line line per statement,
  397. inserting \ before the \n ending lines broken because of their
  398. length [this insertion was recanted 10 Dec. 1994].  This change
  399. accommodates an idiocy in the ANSI/ISO C standard, which leaves
  400. undefined the behavior of #line lines that occur within the arguments
  401. to a macro call. 
  402.  
  403. Wed Nov  2 14:44:27 EST 1994
  404.   libi77: under compilation with -DALWAYS_FLUSH, flush buffers at
  405. the end of each write statement, and test (via the return from
  406. fflush) for write failures, which can be caught with an ERR=
  407. specifier in the write statement.  This extra flushing slows
  408. execution, but can abort execution or alter the flow of control
  409. when a disk fills up.
  410.   f2c/src/io.c: Add ERR= test to e_wsle invocation (end of
  411. list-directed external output) to catch write failures when libI77
  412. is compiled with -DALWAYS_FLUSH.
  413.  
  414. Thu Nov  3 10:59:13 EST 1994
  415.   Fix bug in handling dimensions involving certain intrinsic
  416. functions of constant expressions: the expressions, rather than
  417. pointers to them, were passed.  Example:
  418.       subroutine subtest(n,x)
  419.       real x(2**n,n) ! pow_ii(2,n) was called; now it's pow_ii(&c__2,n) 
  420.       x(2,2)=3.
  421.       end
  422.  
  423. Tue Nov  8 23:56:30 EST 1994
  424.   malloc.c: remove assumption that only malloc calls sbrk.  This
  425. appears to make malloc.c useful on RS6000 systems.
  426.  
  427. Sun Nov 13 13:09:38 EST 1994
  428.   Turn off constant folding of integers used in floating-point
  429. expressions, so the assignment in
  430.     subroutine foo(x)
  431.     double precision x
  432.     x = x*1000000*500000
  433.     end
  434. is rendered as
  435.     *x = *x * 1000000 * 500000;
  436. rather than as
  437.     *x *= 1783793664;
  438.  
  439. Sat Dec 10 16:31:40 EST 1994
  440.   Supply a better error message (than "Impossible type 14") for
  441.     subroutine foo
  442.     foo = 3
  443.     end
  444.   Under -g, convey name of included files to #line lines.
  445.   Recant insertion of \ introduced (under -g) 2 Nov. 1994.
  446.  
  447. Thu Dec 15 14:33:55 EST 1994
  448.   New command-line option -Idir specifies directories in which to
  449. look for non-absolute include files (after looking in the directory
  450. of the current input file).  There can be several -Idir options, each
  451. specifying one directory.  All -Idir options are considered, from
  452. left to right, until a suitably named file is found.  The -I2 and -I4
  453. command-line options have precedence, so directories named 2 or 4
  454. must be spelled by some circumlocation, such as -I./2 .
  455.   f2c.ps updated to mention the new -Idir option, correct a typo,
  456. and bring the man page at the end up to date.
  457.   lex.c: fix bug in reading line numbers in #line lines.
  458.   fc updated to pass -Idir options to f2c.
  459.  
  460. Thu Dec 29 09:48:03 EST 1994
  461.   Fix bug (e.g., addressing fault) in diagnosing inconsistency in
  462. the type of function eta in the following example:
  463.     function foo(c1,c2)
  464.     double complex foo,c1,c2
  465.     double precision eta
  466.     foo = eta(c1,c2)
  467.     end
  468.     function eta(c1,c2)
  469.     double complex eta,c1,c2
  470.     eta = c1*c2
  471.     end
  472.  
  473. Mon Jan  2 13:27:26 EST 1995
  474.   Retain casts for SNGL (or FLOAT) that were erroneously optimized
  475. away.  Example:
  476.     subroutine foo(a,b)
  477.     double precision a,b
  478.     a = float(b)    ! now rendered as *a = (real) (*b);
  479.     end
  480.   Use float (rather than double) temporaries in certain expressions
  481. of type complex.  Example: the temporary for sngl(b) in
  482.     complex a
  483.     double precision b
  484.     a = sngl(b) - (3.,4.)
  485. is now of type float.
  486.  
  487. Fri Jan  6 00:00:27 EST 1995
  488.   Adjust intrinsic function cmplx to act as dcmplx (returning
  489. double complex rather than complex) if either of its args is of
  490. type double precision.  The double temporaries used prior to 2 Jan.
  491. 1995 previously gave it this same behavior.
  492.  
  493. Thu Jan 12 12:31:35 EST 1995
  494.   Adjust -krd to use double temporaries in some calculations of
  495. type complex.
  496.   libf77: pow_[dhiqrz][hiq].c: adjust x**i to work on machines
  497. that sign-extend right shifts when i is the most negative integer.
  498.  
  499. Wed Jan 25 00:14:42 EST 1995
  500.   Fix memory fault in handling overlapping initializations in
  501.     block data
  502.     common /zot/ d
  503.     double precision d(3)
  504.     character*6 v(4)
  505.     real r(2)
  506.     equivalence (d(3),r(1)), (d(1),v(1))
  507.     data v/'abcdef', 'ghijkl', 'mnopqr', 'stuvwx'/
  508.     data r/4.,5./
  509.     end
  510.   names.c: add "far", "huge", "near" to c_keywords (causing them
  511. to have __ appended when used as local variables).
  512.   libf77: add s_copyow.c, an alternative to s_copy.c for handling
  513. (illegal) character assignments where the right- and left-hand
  514. sides overlap, as in a(2:4) = a(1:3).
  515.  
  516. Thu Jan 26 14:21:19 EST 1995
  517.   libf77: roll s_catow.c and s_copyow.c into s_cat.c and s_copy.c,
  518. respectively, allowing the left-hand side of a character assignment
  519. to appear on its right-hand side unless s_cat.c and s_copy.c are
  520. compiled with -DNO_OVERWRITE (which is a bit more efficient).
  521. Fortran 77 forbids the left-hand side from participating in the
  522. right-hand side (of a character assignment), but Fortran 90 allows it.
  523.   libi77: wref.c: fix glitch in printing the exponent of 0 when
  524. GOOD_SPRINTF_EXPONENT is not #defined.
  525.  
  526. Fri Jan 27 12:25:41 EST 1995
  527.   Under -C++ -ec (or -C++ -e1c), surround struct declarations with
  528.     #ifdef __cplusplus
  529.     extern "C" {
  530.     #endif
  531. and
  532.     #ifdef __cplusplus
  533.     }
  534.     #endif
  535. (This isn't needed with cfront, but apparently is necessary with
  536. some other C++ compilers.)
  537.   libf77: minor tweak to s_copy.c: copy forward whenever possible
  538. (for better cache behavior).
  539.  
  540. Wed Feb  1 10:26:12 EST 1995
  541.   Complain about parameter statements that assign values to dummy
  542. arguments, as in
  543.     subroutine foo(x)
  544.     parameter(x = 3.4)
  545.     end
  546.  
  547. Sat Feb  4 20:22:02 EST 1995
  548.   fc: omit "lib=/lib/num/lib.lo".
  549.  
  550. Wed Feb  8 08:41:14 EST 1995
  551.   Minor changes to exec.c, putpcc.c to avoid "bad tag" or "error
  552. in frexpr" with certain invalid Fortran.
  553.  
  554. Sat Feb 11 08:57:39 EST 1995
  555.   Complain about integer overflows, both in simplifying integer
  556. expressions, and in converting integers from decimal to binary.
  557.   Fix a memory fault in putcx1() associated with invalid input.
  558.  
  559. Thu Feb 23 11:20:59 EST 1995
  560.   Omit MAXTOKENLEN; realloc token if necessary (to handle very long
  561. strings).
  562.  
  563. Fri Feb 24 11:02:00 EST 1995
  564.   libi77: iio.c: z_getc: insert (unsigned char *) to allow internal
  565. reading of characters with high-bit set (on machines that sign-extend
  566. characters).
  567.  
  568. Tue Mar 14 18:22:42 EST 1995
  569.   Fix glitch (in io.c) in handling 0-length strings in format
  570. statements, as in
  571.     write(*,10)
  572.  10    format(' ab','','cd')
  573.   libi77: lread.c and rsfe.c: adjust s_rsle and s_rsfe to check for
  574. end-of-file (to prevent infinite loops with empty read statements).
  575.  
  576. Wed Mar 22 10:01:46 EST 1995
  577.   f2c.ps: adjust discussion of -P on p. 7 to reflect a change made
  578. 3 Feb. 1993: -P no longer implies -A.
  579.  
  580. Fri Apr 21 18:35:00 EDT 1995
  581.   fc script: remove absolute paths (since PATH specifies only standard
  582. places).  On most systems, it's still necessary to adjust the PATH
  583. assignment at the start of fc to fit the local conventions.
  584.  
  585. Fri May 26 10:03:17 EDT 1995
  586.   fc script: add recognition of -P and .P files.
  587.   libi77: iio.c: z_wnew: fix bug in handling T format items in internal
  588. writes whose last item is written to an earlier position than some
  589. previous item.
  590.  
  591. Current timestamps of files in "all from f2c/src", sorted by time,
  592. appear below (mm/dd/year hh:mm:ss).  To bring your source up to date,
  593. obtain source files with a timestamp later than the time shown in your
  594. version.c.  Note that the time shown in the current version.c is the
  595. timestamp of the source module that immediately follows version.c below:
  596.  
  597.  3/14/1995  18:22:16  xsum0.out
  598.  3/14/1995  17:14:22  version.c
  599.  3/14/1995  17:14:14  io.c
  600.  2/23/1995  10:51:33  lex.c
  601.  2/23/1995  10:50:41  init.c
  602.  2/23/1995  10:45:10  defs.h
  603.  2/11/1995   8:51:36  putpcc.c
  604.  2/11/1995   8:13:11  expr.c
  605.  2/11/1995   6:32:43  misc.c
  606.  2/08/1995   8:32:51  exec.c
  607.  2/01/1995   9:27:43  data.c
  608.  1/27/1995  12:28:43  names.c
  609.  1/24/1995  23:28:17  formatdata.c
  610.  1/10/1995  19:06:14  proc.c
  611.  1/05/1995  19:14:27  intr.c
  612.  1/02/1995   8:45:01  Notice
  613. 12/16/1994  15:25:18  README
  614. 12/15/1994  13:47:30  f2c.1
  615. 12/15/1994  13:37:53  f2c.1t
  616. 12/15/1994  13:00:26  main.c
  617. 12/10/1994  15:24:15  niceprintf.c
  618. 12/09/1994  23:48:20  format.c
  619. 11/08/1994  23:40:55  malloc.c
  620. 11/03/1994  10:10:46  vax.c
  621. 10/06/1994   9:46:11  f2c.h
  622.  9/27/1994  23:09:35  put.c
  623.  9/16/1994  16:56:14  output.c
  624.  7/01/1994  23:46:42  sysdep.h
  625.  7/01/1994  23:24:55  makefile
  626.  5/10/1994   7:42:53  parse_args.c
  627.  5/10/1994   7:42:53  p1output.c
  628.  3/05/1994   0:57:28  sysdep.c
  629.  3/04/1994  23:42:15  pread.c
  630.  2/25/1994  22:18:14  xsum.c
  631.  2/25/1994  10:56:33  error.c
  632.  2/25/1994  10:25:21  gram.head
  633.  2/25/1994  10:24:54  mem.c
  634.  2/25/1994  10:24:53  equiv.c
  635.  2/25/1994  10:24:52  cds.c
  636.  2/25/1994   2:07:19  parse.h
  637.  2/22/1994  19:07:20  iob.h
  638.  2/22/1994  18:56:53  p1defs.h
  639.  2/22/1994  18:53:46  output.h
  640.  2/22/1994  18:51:14  names.h
  641.  2/22/1994  18:30:41  format.h
  642.  1/18/1994  18:12:52  gram.dcl
  643.  1/18/1994  18:12:52  tokens
  644.  3/06/1993  14:13:58  gram.expr
  645.  3/04/1993  14:59:25  gram.exec
  646.  1/28/1993   9:03:16  ftypes.h
  647.  1/25/1993  11:26:33  defines.h
  648.  4/06/1990   0:00:57  gram.io
  649.  2/03/1990   0:58:26  niceprintf.h
  650.  1/29/1990  13:26:52  memset.c
  651.  1/07/1990   1:20:01  usignal.h
  652. 11/27/1989   8:27:37  machdefs.h
  653.  7/01/1989  11:59:44  pccdefs.h
  654.